1. Field of the Invention
The present invention relates to a method for verifying data in a storage system, a host computer and a storage controller in a storage system.
2. Description of the Related Art
A storage system in which a host computer and a storage controller such as a disk array device are interconnected via a SAN (Storage Area Network) or other networks for intensive storage operation or other similar purposes have been attracting considerable attention. Storage systems configured as above are now being operated at IDCs (Internet Data Centers) and many other places. Recently, focus has been made on systems that use a storage controller called a NAS (Network Attached Storage) which is provided with a file system and uses a LAN (Local Area Network) as the network.
It is often required that the data for database software or other application programs running on a host computer in a storage system configured and operated as described above is in accordance with certain specifications (such a property is hereinafter referred to as “suitability”). Under these circumstances, some application programs are provided with an algorithm for verifying the suitability of the data to be processed.
Even if an application program is provided with the above-mentioned algorithm, however, the data suitability may be lost depending on the SAN or other communication path for connecting a host computer to a storage controller or due to an internal process performed by the storage controller. Further, the storage controller is frequently shared by a plurality of host computers. In such a situation, the data suitability may be impaired if, for instance, an application program running on one host computer inadvertently accesses the data of an application program running on another host computer.
If, for instance, the suitability of the data to be written into a storage controller is lost in a situation in which an application program is not involved, the storage controller will not be able to recognize such a loss of data suitability and will automatically store the unsuitable data. In this instance, the application program will not recognize the loss of data suitability until it reads the data later. If there is a long time lag between the instant at which the data is written and the instant at which the data is read, data recovery may be difficult to achieve.
Even in situations where data is backed up by the storage controller, data recovery win not be achievable if the backed-up data has already lost suitability. Further, if the data suitability is lost in a situation in which an application program is not involved as mentioned above, the cause of the problem is often difficult to specify so that subsequent failure recovery and other similar operations may be rendered difficult to accomplish.
The above problem can be solved if the storage controller is configured to verify the data. In storage systems, data stored in the storage controller by an application program is generally provided with additional information such as information added by an operating system (hereinafter referred to as the “OS”) running on a host computer and information about volumes having been logically organized by a host computer. Further, for example, due to the OS, volume management program, etc., the data stored in the storage controller by an application program is not arranged in a manner in which the data on a host computer is arranged for reference by the application program. However, the storage controller would not be able to get hold of the above-mentioned information and arrangement. That is, as far as the traditional storage system scheme is used, the data verification process performed by an application program cannot be performed by the storage controller. If it were to allow the storage controller to accomplish such data verification, it would be necessary to establish a scheme that would enable the storage controller to acquire relevant information from an application program, OS, and volume management program.
As a scheme to facilitate the checking procedure for enhancement of data reliability, i.e., RAS (Reliability, Availability, and Serviceability), which is conducted when an application program reads data from or writes data onto a magnetic disk, for example, Japanese Patent Application Laid-open Publication No. 8-263223 discloses a mechanism in which the CPU generates RAS data when an I/O operation is performed by an application program and attaches the RAS data to data to be written onto a magnetic disk, in order to enable a magnetic disk input/output channel and magnetic disk controller to conduct a data check.
In the scheme disclosed in the above-mentioned publication, however, the RAS data is independently generated by the CPU and appended to the data to be written. Further, the RAS data does not relate to the data suitability required by an application program. The disclosed scheme is not configured to recognize such information or configuration nor to verify the suitability demanded by individual application programs running on a host computer.